package com.hzit.pay.web.controller;

import com.hzit.pay.web.service.IRefundService;
import com.hzit.payweb.api.req.RefundReq;
import com.hzit.payweb.api.resp.RespVo;
import com.hzit.payweb.api.resp.data.RefundRespData;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 *退款接口
 */
@RestController
@RequestMapping("/refund")
public class RefundController {

    private static final Logger logger = LoggerFactory.getLogger(RefundController.class);

    private IRefundService refundService;

    /**
     *
     * aop的应用场景：动态切换数据源，限制接口请求次数
     * 统一退款接口:批量退款，单笔退款
     * 重复退款/重复支付,接口幂等： 1.token机制，2.分布式锁，3.唯一索引
     * 幂等性：就是用户对于同一操作发起的一次请求或者多次请求的结果是一致的
     * @param refundReq
     * @return
     */
    @RequestMapping("/create")
    public RespVo<RefundRespData> createRefund(RefundReq refundReq){
        logger.info("#########接受到退款请求，请求参数：{}##########",refundReq);

        //验证是否重复请求

        //1.参数校验

            refundService.refund(refundReq);


        return null;
    }



}
